﻿using Orleans;
using Orleans.Concurrency;
using System;
using System.Threading.Tasks;

namespace Sample.Interfaces
{
    public interface IUserService : IGrainWithIntegerKey
    // IGrainWithStringKey、IGrainWithIntegerKey、IGrainWithGuidKey
    // 在这就指定了Grain的标志，我们定义了什么类型的Grain接口我们就使用什么类型去获取Grain
    {
        Task<bool> Exist(string mobileNumber);

        // [AlwaysInterleave] 支持并发，但执行在单线程
        Task AddMoney();
        Task<int> GetMoney();

        Task<int> GetState();

        



    }
}
